home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / CarribeanPoker.dxr / Internal_10_call the bet.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  6.0 KB  |  213 lines

  1. property pSprite, spriteNum, pNormal, pRollover, pPressed, pDisabled, pActive
  2. global gBet, gHand, gCardSprites, gMessageBox, gPokerHands, gBetUI, gPlayerUI
  3.  
  4. on beginSprite me
  5.   pSprite = sprite(spriteNum)
  6.   pNormal = pSprite.member
  7.   gPlayerUI.addProp(pNormal.name.symbol, pSprite)
  8.   pRollover = member(pSprite.member.name && "over")
  9.   pPressed = member(pSprite.member.name && "down")
  10.   pDisabled = member(pSprite.member.name && "dis")
  11.   pActive = 1
  12.   me.toggleActive(#off)
  13. end
  14.  
  15. on mouseEnter me
  16.   if pActive then
  17.     pSprite.member = pRollover
  18.   end if
  19. end
  20.  
  21. on toggleActive me, onOff
  22.   case onOff of
  23.     #on:
  24.       pSprite.member = pNormal
  25.       pActive = 1
  26.     #off:
  27.       pSprite.member = pDisabled
  28.       pActive = 0
  29.   end case
  30. end
  31.  
  32. on mouseLeave me
  33.   if pActive then
  34.     pSprite.member = pNormal
  35.   end if
  36. end
  37.  
  38. on mouseDown me
  39.   if pActive then
  40.     pSprite.member = pPressed
  41.   end if
  42. end
  43.  
  44. on mouseUp me
  45.   if pActive then
  46.     gBet.mAddBet()
  47.     me.toggleActive(#off)
  48.     gPlayerUI[#fold].toggleActive(#off)
  49.     gPlayerUI[#cashout].toggleActive(#off)
  50.     gMessageBox.text = EMPTY
  51.     repeat with i = 1 to gCardSprites[#dealer].count
  52.       if gCardSprites[#dealer][i].member = member("backofcard") then
  53.         puppetSound(7, "flip card")
  54.         gCardSprites[#dealer][i].member = member(gHand[#dealer]._cards[i].mGetImage())
  55.       end if
  56.       s = the ticks + 10
  57.       repeat while the ticks < s
  58.         updateStage()
  59.       end repeat
  60.       updateStage()
  61.     end repeat
  62.     gMessageBox.text = "Sorting cards"
  63.     puppetSound(4, "sort cards")
  64.     gHand[#dealer].sortCards(gCardSprites[#dealer])
  65.     puppetSound(5, "sort cards")
  66.     gHand[#player].sortCards(gCardSprites[#player])
  67.     dealerResult = gHand[#dealer].checkHand(#dealer)
  68.     playerResult = gHand[#player].checkHand()
  69.     if voidp(dealerResult) then
  70.       gMessageBox.text = "Dealer does not qualify"
  71.       gBet.mReturnBet(gBet._betAmount + gBet._ante)
  72.     else
  73.       if gPokerHands.findPos(playerResult) > gPokerHands.findPos(dealerResult) then
  74.         gMessageBox.text = "You win"
  75.         gBet.mReturnBet(gBet._betAmount + (gBet._betAmount * getOdds(playerResult)) + gBet._ante)
  76.       else
  77.         if gPokerHands.findPos(playerResult) < gPokerHands.findPos(dealerResult) then
  78.           gMessageBox.text = "Dealer wins"
  79.           gBet.mResetBet()
  80.         else
  81.           if gPokerHands.findPos(playerResult) = gPokerHands.findPos(dealerResult) then
  82.             dealerResult2 = gHand[#dealer].checkHandValue()
  83.             playerResult2 = gHand[#player].checkHandValue()
  84.             if playerResult2 > dealerResult2 then
  85.               gMessageBox.text = "You win"
  86.               gBet.mReturnBet(gBet._betAmount + (gBet._betAmount * getOdds(playerResult)) + gBet._ante)
  87.             else
  88.               if playerResult2 < dealerResult2 then
  89.                 gMessageBox.text = "Dealer wins"
  90.                 gBet.mResetBet()
  91.               else
  92.                 whoHasHigh = compareShit()
  93.                 if whoHasHigh = #player then
  94.                   gMessageBox.text = "You win"
  95.                   gBet.mReturnBet((gBet._betAmount * 2) + gBet._ante)
  96.                 else
  97.                   gMessageBox.text = "Dealer wins"
  98.                   gBet.mResetBet()
  99.                 end if
  100.               end if
  101.             end if
  102.           else
  103.             whoHasHigh = compareShit()
  104.             if whoHasHigh = #player then
  105.               gMessageBox.text = "You win"
  106.               gBet.mReturnBet((gBet._betAmount * 2) + gBet._ante)
  107.             else
  108.               gMessageBox.text = "Dealer wins"
  109.               gBet.mResetBet()
  110.             end if
  111.           end if
  112.         end if
  113.       end if
  114.     end if
  115.     s = the ticks + 150
  116.     repeat while the ticks < s
  117.       updateStage()
  118.     end repeat
  119.     repeat with who in [#dealer, #player]
  120.       repeat with i = 1 to gCardSprites[who].count
  121.         puppetSound(5, "flip card")
  122.         gCardSprites[who][i].member = member("invisible_card")
  123.         s = the ticks + 5
  124.         repeat while the ticks < s
  125.           updateStage()
  126.         end repeat
  127.       end repeat
  128.     end repeat
  129.     if gBet.pCreditBalance < 3 then
  130.       s = the ticks + 200
  131.       repeat while the ticks < s
  132.         updateStage()
  133.       end repeat
  134.       go("Game over")
  135.     else
  136.       gMessageBox.text = EMPTY
  137.       if (gBet._ante * 3) <= gBet.pCreditBalance then
  138.         gPlayerUI[#lastBet].toggleActive(#on)
  139.       else
  140.         gBet.mClearAnte()
  141.       end if
  142.       gPlayerUI[#cashout].toggleActive(#on)
  143.       gHand[#player]._cards.deleteAll()
  144.       gHand[#dealer]._cards.deleteAll()
  145.       repeat with i in gBetUI
  146.         if (i.pAmount * 3) > gBet.pCreditBalance then
  147.           next repeat
  148.         end if
  149.         i.toggleActive(#on)
  150.       end repeat
  151.     end if
  152.   end if
  153. end
  154.  
  155. on getOdds hand
  156.   if hand = #royalflush then
  157.     return 100
  158.   else
  159.     if hand = #straightflush then
  160.       return 50
  161.     else
  162.       if hand = #fourofakind then
  163.         return 20
  164.       else
  165.         if hand = #fullhouse then
  166.           return 7
  167.         else
  168.           if hand = #flush then
  169.             return 5
  170.           else
  171.             if hand = #straight then
  172.               return 4
  173.             else
  174.               if hand = #threeofakind then
  175.                 return 3
  176.               else
  177.                 if hand = #twopairs then
  178.                   return 2
  179.                 else
  180.                   if hand = #pair then
  181.                     return 1
  182.                   end if
  183.                 end if
  184.               end if
  185.             end if
  186.           end if
  187.         end if
  188.       end if
  189.     end if
  190.   end if
  191. end
  192.  
  193. on compareShit
  194.   if (gHand[#player]._cards[1].pValue = 1) and (gHand[#dealer]._cards[1].pValue <> 1) then
  195.     return #player
  196.   else
  197.     if (gHand[#player]._cards[1].pValue <> 1) and (gHand[#dealer]._cards[1].pValue = 1) then
  198.       return #dealer
  199.     else
  200.       repeat with i = gHand[#player]._cards[1].count down to 2
  201.         if gHand[#player]._cards[i].pValue = gHand[#dealer]._cards[i].pValue then
  202.           next repeat
  203.         end if
  204.         if gHand[#player]._cards[i].pValue > gHand[#dealer]._cards[i].pValue then
  205.           return #player
  206.           next repeat
  207.         end if
  208.         return #dealer
  209.       end repeat
  210.     end if
  211.   end if
  212. end
  213.